package kr.co.doriclassic.pro10;

import java.util.Random;
import javax.swing.JOptionPane;

/**로또번호 생성기
 * @author M201_06
 *
 */
public class LottoGenerator {
	private int[][] arr;//값을 넣을 배열
	private static final int SIZE=6;//배열의 사이즈를 6자리로 초기화
	private int numLotto;
	private Random rnd;	//랜덤함수 생성
	
	public LottoGenerator(int numLotto) {//생성자
		arr = new int[numLotto][LottoGenerator.SIZE];//배열을 6자리로 초기화
		rnd = new Random();//랜덤함수 호출
		this.numLotto=numLotto;
	}
	
	public void getLottoNum(){//로또번호 생성
		int num = -1;//난수된 값을 생성할 변수
		
		for(int i=0;i<numLotto;i++){
			System.out.print("[");
			for (int j = 0; j < arr[i].length; j++) {
				num = getNum();//난수값 생성
				if(isFind(num, i)){//중복값이 있으면, i는 현재 n번째 로또 수를 명함
					//num=getNum();//다시 받는다.
					j--;//한자리 뒤로 가서 또 증가하게 되므로, 결국 같은 자리를 계속 반복하게 된다.
				}
				else{
					arr[i][j]=num;//배열에 저장

					if(j==arr[i].length-1)
						System.out.print(arr[i][j]);
					else
						System.out.print(arr[i][j]+" ");
				}			
			}
			System.out.print("]\n");
		}

	}
	
	public boolean isFind(int searchNum, int i){//앞서 생성한 번호와 중복값이 있는지 검사
		boolean isEquals=false;//중복값이 있으면 true 없으면 false
		
			for(int j=0;j<arr[i].length;j++){//전체 자리수 검사
				if(searchNum==arr[i][j]){//입력된 값과 같은 수가 있으면
					isEquals=true;//중복값이 있다.
					break;//빠져나감
				}
		
		}
		//System.out.println(isEquals);//중복값이 있는지 없는지 출력
		return isEquals;//참인지 거짓인지 반환
	}
	
	public int getNum(){
		return rnd.nextInt(45)+1;//1에서 45까지의 난수 발생		
	}
	
	public static void main(String[] args) {
		String s = JOptionPane.showInputDialog("생성 개수 입력:");
		int numLotto=Integer.parseInt(s);
		LottoGenerator lo = new LottoGenerator(numLotto);
		lo.getLottoNum();//로또 생성
		//String result = (lo.isFind(lo.getNum()))?"found":"not found";
		
	}
}
